Within the field of computing, many scenarios involve a set of one or more storage devices (e.g., platter-based magnetic and/or optical hard disk drives, solid-state storage devices, and nonvolatile memory circuits) that may be allocated in various ways. As a first example, the storage space provided by a storage device may be grouped into one or more partitions, each of which may store data associated with one or more logical drives reflected in an operating environment. As a second example, the capacity of two or more storage devices may be combined in many ways to provide additional storage features, e.g., various Redundant Array of Inexpensive Disks (RAID) schemes that provide features such as improved throughput, automatic mirroring, and automatic parity computations. As a third example, the storage space may be accessible to one or more computers (e.g., a network-attached storage device that is concurrently accessible to several computers on a network). More complex techniques may also be provided by such devices, such as journaled spaces and thin provisioning.
The design choices involved in such scenarios result in metadata indicating the number, types, capacities, allocations, and features provided by the storage devices of the storage set, as well as the pooling arrangements of one or more storage devices. This metadata may be stored in many ways, such as in the memory of a storage controller (e.g., a RAID controller configured to store information about a RAID scheme applied to the storage devices), or in standardized locations on one or more storage disks of the storage set. For example, a storage device may comprise, at the beginning of the storage space, a master boot record (MBR) listing the numbers, locations, sizes, and types of partitions stored on the storage device, and, at the end of the storage space, a logical disk model (LDM) database indicating the logical drives exposed by the partitions.